/*
 *      kernel.h
 *      
 *      Copyright 2009 AzureSky <AzureSky.fedora@gmail.com>
 *      
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */

#ifndef _KERNEL_H_
#define _KERNEL_H_

#include <sys/types.h>
#include <sys/sysctl.h>

class kernel_opt
{
	public:
		kernel_opt();
		~kernel_opt();
		
		/* int: allow ctl-alt-del to reboot */
		int about_ctrl_alt_del();
		int change_ctrl_alt_del(int);
		
		/* int: panic timeout */
		int about_panic();
		int change_panic(int);
		
		/* int: Maximum size of a messege */
		int about_msgmax();
		int change_msgmax(int);
		
		/* int: Maximum message queue size */
		int about_msgmnb();
		int change_msgmnb(int);
		
		/* int: msg queue identifiers */
		int about_msgmni();
		int change_msgmni(int);
		
		/* long: Maximum shared memory segment */
		long about_shmmax();
		long change_shmmax(long);
		
		/* int: Maximum size of shared memory */
		int about_shmall();
		int change_shmall(int);
		
		/* int: shm array identifiers */
		int about_shmmni();
		int change_shmmni(int);
		
		/* int: Maximum nr of threads in the system */
		int about_threads_max();
		int change_threads_max(int);
		
};

#endif //_KERNEL_H_
